var WeixinUtil = {

    getJsapiInfo: function(cb){
        var url = window.location.href
        $.post('/jsapiSign', {url: url}, function(res){
            if(!res.error){
                cb(res.signInfo);
            }
        })
    },

    initConfig: function(fns, debug, cb){
        this.getJsapiInfo(function(signInfo){
            wx.config({
                debug: debug || true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                appId: signInfo.appId, // 必填，公众号的唯一标识
                timestamp: signInfo.timestamp, // 必填，生成签名的时间戳
                nonceStr: signInfo.nonceStr, // 必填，生成签名的随机串
                signature: signInfo.signature,// 必填，签名，见附录1
                jsApiList: fns // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
            });
            cb();
        })
    },

    chooseCoupon: function(params, cb){
        wx.chooseCard({
            shopId: params.location_id, // 门店Id
            cardType: params.card_type, // 卡券类型
            cardId: params.card_id, // 卡券Id
            timeStamp: params.time_stamp, // 卡券签名时间戳
            nonceStr: params.nonce_str, // 卡券签名随机串
            cardSign: params.card_sign, // 卡券签名，详见附录6
            success: function (res) {
                var cardList= res.cardList; // 用户选中的卡券列表信息
                cb(cardList)
            }
        });
    },

    addCoupon: function(params, cb){
        var card_ext = "{\"code\":\"\",\"openid\":\"\",\"timestamp\":\""+params.card_ext.timestamp+"\",\"signature\":\""+params.card_ext.signature+"\"}";
        wx.addCard({
            cardList: [{
                cardId: params.card_id,
                cardExt: card_ext
            }], // 需要添加的卡券列表
            success: function (res) {
                var cardList = res.cardList; // 添加的卡券列表信息
                cb(cardList)
            }
        });
    },

    wechatPay: function(params, cb){
        //TODO: 签名参数有变动，暂用旧的起调方式
        wx.chooseWXPay({
            timestamp: params.timeStamp, // 支付签名时间戳
            noncestr: params.nonceStr, // 支付签名随机串
            package: params.package, // 订单详情扩展字符串，详见附录5
            paySign: params.paySign // 支付签名，详见附录5
        });
    },

    sharePage: function(title, desc, imgUrl, link, callback){
        wx.ready(function(){
            wx.onMenuShareTimeline({
                title: title, // 分享标题
                link: link, // 分享链接
                imgUrl: imgUrl, // 分享图标
                success: function () {
                    // 用户确认分享后执行的回调函数
                },
                cancel: function () {
                    // 用户取消分享后执行的回调函数
                }
            });
            wx.onMenuShareAppMessage({
                title: title, // 分享标题
                desc: desc, // 分享描述
                link: link, // 分享链接
                imgUrl: imgUrl, // 分享图标
                type: 'link', // 分享类型,music、video或link，不填默认为link
                dataUrl: '', // 如果type是music或video，则要提供数据链接，默认为空
                success: function () {
                    // 用户确认分享后执行的回调函数
                },
                cancel: function () {
                    // 用户取消分享后执行的回调函数
                }
            });
            wx.onMenuShareQQ({
                title: title, // 分享标题
                desc: desc, // 分享描述
                link: link, // 分享链接
                imgUrl: imgUrl, // 分享图标
                success: function () {
                    // 用户确认分享后执行的回调函数
                },
                cancel: function () {
                    // 用户取消分享后执行的回调函数
                }
            });
            wx.onMenuShareWeibo({
                title: title, // 分享标题
                desc: desc, // 分享描述
                link: link, // 分享链接
                imgUrl: imgUrl, // 分享图标
                success: function () {
                    // 用户确认分享后执行的回调函数
                },
                cancel: function () {
                    // 用户取消分享后执行的回调函数
                }
            });
        })
    }
}
